local t = Def.ActorFrame{};

if not GAMESTATE:IsCourseMode() then return t; end;

t[#t+1] = Def.ActorFrame {
	Def.Quad{
		InitCommand=cmd(FullScreen;Center);
		BeforeLoadingNextCourseSongMessageCommand=cmd(diffuse,color("0,0,0,0"));
		ChangeCourseSongInMessageCommand=cmd(diffuse,color("0,0,0,0"));
		StartCommand=cmd(diffuse,color("0,0,0,0");sleep,0.5;linear,0.2;diffuse,color("0,0,0,1");linear,0.2;diffuse,color("0,0,0,0"););
		FinishCommand=cmd(linear,0.2;diffuse,color("0,0,0,0"););
	};

	Def.Sprite{
		InitCommand=cmd(Center;draworder,-103;);
		BeforeLoadingNextCourseSongMessageCommand=function(self)
			self:LoadFromSongBackground( SCREENMAN:GetTopScreen():GetNextCourseSong() );
		end;
		ChangeCourseSongInMessageCommand=cmd(diffusealpha,1);
		StartCommand=function(self)
			self:diffusealpha(0);
			self:zoomtowidth(SCREEN_WIDTH+40);
			self:zoomtoheight(SCREEN_HEIGHT+20);
			self:sleep(1);
			self:decelerate(2);
			self:zoomtowidth(SCREEN_WIDTH);
			self:zoomtoheight(SCREEN_HEIGHT);
			self:diffusealpha(1);
			self:linear(0.2);
			self:diffusealpha(0);
		end;
		FinishCommand=function(self)
			self:diffusealpha(0);
		end;
	};
	
	Def.Quad{
		InitCommand=cmd(diffuse,color("0,0,0,1");x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoomtowidth,SCREEN_WIDTH;zoomtoheight,SCREEN_HEIGHT;);
		BeforeLoadingNextCourseSongMessageCommand=cmd(diffusealpha,0;);
		ChangeCourseSongInMessageCommand=cmd(diffusealpha,0);
		StartCommand=function(self)
			local song = SCREENMAN:GetTopScreen():GetNextCourseSong();
			local path;
			local JacketPath = song:GetJacketPath();
			if JacketPath then
				self:diffusealpha(0);
				self:linear(0.25);
				self:diffusealpha(0.3);
				self:sleep(1.6);
				self:linear(0.1);
				self:diffusealpha(0.7);
				self:y(SCREEN_BOTTOM-130);
				self:zoomtoheight(180);
				self:linear(1);
				self:zoomtoheight(250);
				self:diffusealpha(0.8);
				self:linear(0.1);
				self:zoomtoheight(SCREEN_HEIGHT);
				self:diffusealpha(0);
			else
				self:diffusealpha(0);
				self:linear(0.25);
				self:diffusealpha(0.3);
				self:sleep(1.6);
				self:linear(0.1);
				self:diffusealpha(0.7);
				self:addy(15);
				self:zoomtoheight(260);
				self:linear(1);
				self:zoomtoheight(330);
				self:diffusealpha(0.8);
				self:linear(0.1);
				self:zoomtoheight(SCREEN_HEIGHT);
				self:diffusealpha(0);
			end;
		end;
		FinishCommand=function(self)
			self:diffusealpha(0);
		end;
	};

	LoadActor( THEME:GetPathB("","back_over"))..{
		InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;);
		BeforeLoadingNextCourseSongMessageCommand=cmd(diffusealpha,0;);
		ChangeCourseSongInMessageCommand=cmd(diffusealpha,0);
		StartCommand=cmd(diffusealpha,0;sleep,0.5;zoomy,8;linear,0.4;diffusealpha,1;zoomy,1;glow,color("1,0,0,1");linear,0.15;glow,color("0,0,0,0");diffusealpha,1;sleep,0.8;linear,0.4;zoomy,8;diffusealpha,0;);
		FinishCommand=cmd(diffusealpha,0;);
	};
	
	LoadActor("hex_norepeat")..{
	};

	LoadActor("banner")..{
	};
	LoadActor("jacket")..{
	};
	LoadActor("plus")..{
	};
	LoadActor("songtitle")..{
	};
	
	LoadActor(THEME:GetPathB("","_white"))..{
		InitCommand=cmd(diffuse,color("0.8,0,0.8,1");x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;);
		StartCommand=cmd(zoomtowidth,SCREEN_WIDTH;zoomtoheight,0;sleep,0.8;decelerate,0.8;zoomtoheight,SCREEN_HEIGHT;diffuse,color("0.8,0,0.6,0");diffusealpha,0;);
		FinishCommand=cmd(diffusealpha,0;zoomtoheight,SCREEN_HEIGHT;zoomtoheight,0;);

	};
	Def.Quad{
		InitCommand=cmd(draworder,-106;FullScreen;);
		StartCommand=cmd(diffuse,color("1,1,1,1");accelerate,0.5;diffuse,color("0,0,0,0"););
		FinishCommand=cmd(diffuse,color("0,0,0,0"););
	};
};
return t;